home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / Libraries / MacPNG Library 1.02 / pngMacSrc 1.02 / PNG Library 0.80 / LPFAQ.TXT < prev    next >
Text File  |  1995-08-20  |  7KB  |  191 lines

  1. libpng FAQ - August 20, 1995
  2.  
  3. Maintainer:
  4.  
  5. Guy Eric Schalnat: schalnat@group42.com  CompuServe: 75501,1625
  6.  
  7.  
  8. Contents:
  9.  
  10. 1) General Questions
  11. 1.1) How official is this FAQ?
  12. 1.2) How often is this FAQ posted?
  13. 1.3) Where can I get this FAQ, libpng, zlib, the PNG
  14.      specification, test images, etc.?
  15. 1.4) How ready is libpng?
  16. 1.5) How portable is libpng?
  17. 1.6) When will libpng be out of Beta?
  18. 1.7) What remains to be done in libpng for the 1.0 release?
  19. 1.8) Can I help?
  20. 1.9) Why don't you answer your mail?
  21.  
  22. 2) Libpng questions
  23. 2.1) Does the order of functions calls matter?
  24. 2.2) When I try to read/write a png image, it doesn't work.
  25. 2.3) Do I have to start with example.c?
  26. 2.4) What things should I be careful of?
  27. 2.5) Why doesn't example.c compile?
  28.  
  29. 3) Critical Patches
  30. No known bugs (for now :-).
  31.  
  32. 4) Non-critical patches
  33. No known bugs (for now :-).
  34.  
  35.  
  36. Questions:
  37.  
  38. 1) General Questions
  39.  
  40. 1.1) How official is this FAQ?
  41.  
  42. As it was written by the author of libpng (that's me :), it's
  43. about offical as one can get.  However, it is not ready for
  44. prime time yet, as libpng is still in beta, and thus its
  45. users are of the sort that are willing to deal with beta
  46. software.  Thus, I assume all of you reading this have a
  47. basic familiarity with PNG, libpng, and C programming.  I'll
  48. write a basic section for libpng later, as well as some quick
  49. stuff on PNG itself (but this will not be the PNG FAQ.  I just
  50. don't have that kind of time).
  51.  
  52. 1.2) How often is this FAQ posted?
  53.  
  54. As often as events warrant.  I doubt it'll get stale, and as
  55. it is not (and may never be) actually posted to a newsgroup,
  56. I feel no need to make monthy postings.
  57.  
  58. 1.3) Where can I get this FAQ, libpng, zlib, the PNG 
  59. specification, test images, etc.?
  60.  
  61. Everything should be at ftp://ftp.uu.net/graphics/png and
  62. mirror sites.  On CompuServe, it should be at GO GRAPHSUPPORT
  63. in the Png Development library (lib 20).  Failing that, try
  64. my ftp site at ftp://ftp.group42.com/pub/png or web site at
  65. http://www.group42.com/  If you have trouble getting to these,
  66. the numerical address is 204.94.158.25
  67.  
  68. 1.4) How ready is libpng?
  69.  
  70. In its current incarnation (0.8), it still may have a few bugs.
  71. I think I got all of the bugs this time, but one never knows.
  72. Also, the dithering currently in libpng is horrid, so that
  73. needs work.  Finally, I have yet to implement medium model
  74. support.
  75.  
  76. 1.5) How portable is libpng?
  77.  
  78. As portable as I can make it.  It needs int's of at least
  79. 16 bits, and longs of at least 32 bits.  It has not been
  80. tried for char's larger then 8 bits.  It should support
  81. any reasonable K&R C compiler, as well as any ANSI C
  82. compiler.  The most you should need to do is change the
  83. includes in pngconf.h.  So far, I know of no compiler in use
  84. that libpng will not compile on.
  85.  
  86. 1.6) When will libpng be out of Beta?
  87.  
  88. That depends on my workload here.  I'm writing libpng for
  89. free, which generates tons of good will, but doesn't help
  90. put food on the table, so there are times I just can't do
  91. any real work on it.  There is still some work to be done
  92. (see question 1.7), so don't expect the official version
  93. before September (and that may be pushing it).  I'll try
  94. to get the next (last?) beta version out my early
  95. September.  Be warned, I always seem to take twice as
  96. long as I think I will.
  97.  
  98. 1.7) What remains to be done in libpng for the 1.0 release?
  99.  
  100. Add Tim Wegner's medium memory model support. (Thanks, Tim).
  101. Improve the dithering.
  102. Rewrite libpng.txt, and comment the code better.
  103. Test with a final zlib.
  104.  
  105. 1.8) Can I help?
  106.  
  107. Sweet words.  The most helpful thing you can do for the
  108. 1.0 release is help testing on your compiler.  After this
  109. release, though, there is a large list of things that ought
  110. to be done to make libpng be more full featured.  We'll
  111. talk about this later, as I don't want to add tons of new
  112. code until after 1.0 gets out the door.  Please send me
  113. any makefile changes and/or other changes needed to support
  114. your compiler (with a #ifdef for the code changes).
  115.  
  116. If any of you are good at technical writing, take a look at
  117. libpng.txt and correct it (or rewrite it) as necessary.  I
  118. am not a writer, I'm a programmer.  It shows.
  119.  
  120. 1.9) Why don't you answer your mail?
  121.  
  122. I've been busy.  I'm sorry about that, and I've got to get
  123. into the habit of at least replying that I got the message.
  124. Also, some of you have sent me problems that I haven't gotten
  125. back to you yet.  If it is still a problem, you may want to
  126. give me a short message and remind me that I need to look into
  127. it.  Libpng is being tested by more people than I dared hope
  128. (which is a good thing), and I was unprepared to deal with so
  129. many problems so soon.
  130.  
  131.  
  132. 2) Libpng questions
  133.  
  134. 2.1) Does the order of functions calls matter?
  135.  
  136. In general, yes.  If you stick with the order I used in libpng.txt
  137. and example.c, you should be safe.  Be warned, however, that I
  138. messed up the order of png_set_interlace_handling().  It needs
  139. to be called *before* png_start_read_image(), not after.  Oops.
  140. The exceptions to this rule are all the png_set ... calls.
  141. They can be done in any order, but they all have to be done
  142. in the area indicated by libpng.txt/example.c.
  143.  
  144. 2.2) When I try to read/write a png image, it doesn't work.
  145.  
  146. Does zlib's test program work (example.c)?  Does libpng's test
  147. program work (testpng.c)?  Have you installed the patches at
  148. the end of this FAQ?  After all that, if the problem continues,
  149. e-mail me, and we'll try to fix it.  If you don't have much 
  150. programming experience, be patient about the fix.  Code
  151. fragments help, as do *small* images (uuencoded please).  If
  152. I don't get back to you right away, give me some time.  Thanks.
  153.  
  154. 2.3) Do I have to start with example.c?
  155.  
  156. No, but most people have had much better luck doing that.  Seems
  157. I didn't explain things well in libpng.txt, so things are not
  158. intuitive to people (which could be an api design problem also).
  159. Sometime in the future, we'll revisit the api design, and try
  160. to make it easier to use.  I'll rewrite libpng.txt before the
  161. 1.0 release.
  162.  
  163. 2.4) What things should I be careful of?
  164.  
  165. The main gotcha is calling png_read_init() before png_info_init().
  166. Also, always make sure you have a correct setjmp buffer.  That's
  167. all I can think of for now.
  168.  
  169. 2.5) Why doesn't example.c compile?
  170.  
  171. I wrote example.c as a staring point for using libpng.  It doesn't
  172. compile because I don't know how you want to do things like allocating
  173. memory to hold the image, so I left that code out.  If you go in and
  174. finish it up, it should work fine.  The file pngtest.c gives a
  175. very simple example of reading and writing png files.
  176.  
  177.  
  178. 3) Critical Patches
  179.  
  180. No known bugs (for now :-).
  181.  
  182.  
  183. 4) Non-critical patches
  184.  
  185. No known bugs (for now :-).
  186.  
  187.  
  188. That's it so far as I know.  If I missed something, yell.
  189.  
  190. -Guy
  191.